package com.southwind.springboottest.study.java正则表达式;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @description：TODO
 * Java的正则表达式支持以下常用的元字符和模式：
 *
 * 字符类：
 * [abc]：匹配其中任何一个字符a、b或c。
 * [^abc]：匹配除了a、b、c之外的任意字符。
 * [a-z]：匹配任意小写字母。
 * [A-Z]：匹配任意大写字母。
 * [0-9]：匹配任意数字字符。
 * 预定义字符类：
 * .：匹配任意字符，但不包括换行符。
 * \d：匹配任意数字字符，相当于[0-9]。
 * \D：匹配任意非数字字符，相当于[^0-9]。
 * \w：匹配任意单词字符（字母、数字或下划线），相当于[a-zA-Z0-9_]。
 * \W：匹配任意非单词字符，相当于[^a-zA-Z0-9_]。
 * \s：匹配任意空白字符，包括空格、制表符、换行符等。
 * \S：匹配任意非空白字符。
 * 边界匹配：
 * ^：匹配字符串的开始位置。
 * $：匹配字符串的结束位置。
 * \b：匹配单词边界。
 * \B：匹配非单词边界。
 * 重复：
 * *：匹配前面的元素零次或多次。
 * +：匹配前面的元素一次或多次。
 * ?：匹配前面的元素零次或一次。
 * {n}：匹配前面的元素恰好n次。
 * {n,}：匹配前面的元素至少n次。
 * {n,m}：匹配前面的元素至少n次，但不超过m次。
 * 分组和捕获：
 * ()：将括号内的模式作为一个分组。
 * (?:)：只分组，不捕获。
 * (abc)：分组并捕获匹配的文本，可以使用matcher.group(n)获取捕获的内容。
 * 转义字符：
 * \：用于转义特殊字符，如\.表示匹配实际的句点字符。
 * 匹配选项：
 * Pattern.CASE_INSENSITIVE：忽略大小写匹配。
 * Pattern.MULTILINE：启用多行模式，^和$匹配每一行的开始和结束位置。
 * Pattern.DOTALL：启用.匹配换行符。
 * 这些只是Java正则表达式的一部分功能，还有更多高级用法，如反向引用、零宽断言、贪婪与非贪婪匹配等。你可以参考Java的正则表达式文档或使用在线正则表达式测试工具来尝试不同的模式和案例。
 * @author： HXG
 * @create： 2023/12/15 17:37
 */

import java.util.regex.*;
public class RegExDemo {

}

/**
 * 正则表达式是通过java.util.regex包来使用的。该包提供了Pattern和Matcher类，用于编译、匹配和操作正则表达式。
 * 下面是一个简单的示例，演示如何在Java中使用正则表达式：
 */
 class RegexExample {
    public static void main(String[] args) {
        String text = "Hello, 2023!";
        String pattern = "\\d+"; // 匹配连续的数字

        // 编译正则表达式
        Pattern regex = Pattern.compile(pattern);

        // 创建匹配器
        Matcher matcher = regex.matcher(text);

        // 查找匹配
        if (matcher.find()) {
            System.out.println("找到匹配：" + matcher.group());
        } else {
            System.out.println("未找到匹配");
        }
    }
}

